-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
repolist: Implement JSON output #1522
Conversation
For requesting machine-readable output in JSON format.
e464098
to
edeb153
Compare
Example output:
|
The question is also if to have consistent attributes in the JSON output or if to filter some (like |
@@ -206,6 +209,7 @@ class Context::Impl { | |||
const char * comment{nullptr}; | |||
|
|||
bool should_store_offline = false; | |||
bool json_output = false; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this need to be stored in the Context
?
It seems the value is used only in the commands, to make it simpler I would store it there.
It could use libdnf5::cli::session::BoolOption
, for example like advisory SecurityOption
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've been already working on the follow-up repoinfo
implementation and there I am calling the set_quiet(true)
when json output is requested to have really just the JSON on the output, so it's also parsable. In this regard, this place is handy.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see, however doesn't that have the same issue as mentioned in #1524?
That is dnf5 repo info --quiet --refresh
prints REPOSYNC to stdout which would ruin the json.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, you're right this is happening, though I'd think it's suppressed by this line: https://github.com/rpm-software-management/dnf5/blob/5.2.3.0/dnf5/main.cpp#L1192. So it seems like a bug to me right now. I am still planning to do such binding to quiet
there...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So the issue is that the ^ mentioned callbacks setup should be done after parsing the command line arguments. Then the quiet
is taken into account. Tested locally and seems working 🙂
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for looking into it.
Personally I prefer consistent attributes, I believe it will be less error prone. |
--json
option for requesting output in JSON formatrepo list
commandFor: #867.